package model

import "fmt"

type person struct {
	Name string // 首字母大写,可以公开访问
	age  int    // 首字母小写,其他包不能访问
}

// 定义工厂模式的函数,相当于构造器
func NewPerson(name string) *person {
	return &person{
		Name: name,
	}
}

// 定义set和get方法,对age字段进行封装,
// 因为方法中可以加一些列的限制操作,确保被封装字段的安全合理性
func (p *person) SetAge(age int) {
	if age > 0 && age < 150 {
		p.age = age
	} else {
		fmt.Println("年龄方位不正确")
	}
}

func (p *person) GetAge() int {
	return p.age
}


